<?php
class MenuGroupController extends Controller
{
	/**
	 * @var string the default layout for the views. Defaults to '//layouts/column1', meaning
	 * using one-column layout. See 'protected/views/layouts/column1.php'.
	 */
	public $layout='//layouts/column1';

	/**
	 * @return array action filters
	 */
	public function filters()
	{
		return array(
		//	'rights',
		);
	}

	public function allowedActions() 
        { 
            return ''; 
        }

	/**
	 * Displays a particular model.
	 * @param integer $id the ID of the model to be displayed
	 */
	public function actionView($id)
	{
		$this->render('view',array(
			'model'=>$this->loadModel($id),
		));
	}
        
        
        /**
         *@param Integer $id 
         */
        public function actionViewDetail($id)
        {
            $menu = Menu::model()->getMenuTree();
            $menuGroup = MenuGroup::model()->findAllByAttributes(
                            array('id_group'=>$id)
                        );
            
            foreach ($menu as $key => $value) {
                foreach ($menuGroup as $keyUserGroup )
                {
                    
                    if($value['id']==$keyUserGroup->id_menu)
                    {
                        $menu[$key]['active'] = true;
                    }else
                        continue;
                }
                //die;
            }
                
            $this->render(
                    'ViewDetail', 
                    array(
                        'menu' => $menu,
                        'group_id'=>$id
                    )
                   );
        }
       
        /**
         *
         * @param type $group_id
         * @param type $menu_id
         * @throws CHttpException 
         */
        public function actionInactive($group_id, $menu_id)
        {
            if(!isset($menu_id))
                throw new CHttpException(404,'The requested page does not exist.');
            
            $menuGroup = MenuGroup::model()->findByAttributes(
                        array(
                            'id_group' => $group_id,
                            'id_menu' => $menu_id
                        )
                    );
            $menuGroup->delete();
            
            $this->redirect('/MenuGroup/ViewDetail/'.$group_id);
            
        }
        
        /**
         *
         * @param type $group_id
         * @param type $menu_id
         * @throws CHttpException 
         */
        public function actionActive($group_id, $menu_id)
        {
            if(!isset($menu_id))
                throw new CHttpException(404,'The requested page does not exist.');
            
            $menuGroup = new MenuGroup;
            $menuGroup->id_group = $group_id;
            $menuGroup->id_menu = $menu_id;
            $menuGroup->save();
            
            $this->redirect('/MenuGroup/ViewDetail/'.$group_id);
            
        }

        /**
         * 
         */
        public function actionGroupList()
        {
                $model=new Group('search');
		$model->unsetAttributes();  // clear any default values
		if(isset($_GET['Group']))
			$model->attributes=$_GET['Group'];

		$this->render('GroupList',array(
			'model'=>$model,
		));
        }

        /**
	 * Creates a new model.
	 * If creation is successful, the browser will be redirected to the 'view' page.
	 */
	public function actionCreate()
	{
		$model=new UserGroup;

		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);

		if(isset($_POST['UserGroup']))
		{
			$model->attributes=$_POST['UserGroup'];
			if($model->save())
				$this->redirect(array('view','id'=>$model->id_user_group));
		}

		$this->render('create',array(
			'model'=>$model,
		));
	}

	/**
	 * Updates a particular model.
	 * If update is successful, the browser will be redirected to the 'view' page.
	 * @param integer $id the ID of the model to be updated
	 */
	public function actionUpdate($id)
	{
		$model=$this->loadModel($id);

		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);

		if(isset($_POST['UserGroup']))
		{
			$model->attributes=$_POST['UserGroup'];
			if($model->save())
				$this->redirect(array('view','id'=>$model->id_user_group));
		}

		$this->render('update',array(
			'model'=>$model,
		));
	}

	/**
	 * Deletes a particular model.
	 * If deletion is successful, the browser will be redirected to the 'admin' page.
	 * @param integer $id the ID of the model to be deleted
	 */
	public function actionDelete($id)
	{
		$this->loadModel($id)->delete();

		// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
		if(!isset($_GET['ajax']))
			$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
	}

	/**
	 * Lists all models.
	 */
	public function actionIndex()
	{
		$model=new MenuGroup('search');
		$model->unsetAttributes();  // clear any default values
		if(isset($_GET['UserGroup']))
			$model->attributes=$_GET['UserGroup'];

		$this->render('index',array(
			'model'=>$model,
		));
	}

	

	/**
	 * Returns the data model based on the primary key given in the GET variable.
	 * If the data model is not found, an HTTP exception will be raised.
	 * @param integer the ID of the model to be loaded
	 */
	public function loadModel($id)
	{
		$model=UserGroup::model()->findByPk($id);
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}

	/**
	 * Performs the AJAX validation.
	 * @param CModel the model to be validated
	 */
	protected function performAjaxValidation($model)
	{
		if(isset($_POST['ajax']) && $_POST['ajax']==='user-group-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
}
